home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 1998 August / PC Plus SuperCD 50a Issue 142 (CD142a) (August 1998).iso / full / jbuild / setup / JBuilder / jsamples.z / misc.jar / sunw / demo / misc / Voter.class (.txt) < prev   
Encoding:
Java Class File  |  1997-06-04  |  1.9 KB  |  61 lines

  1. package sunw.demo.misc;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Dimension;
  6. import java.awt.Font;
  7. import java.awt.FontMetrics;
  8. import java.awt.Graphics;
  9. import java.beans.PropertyChangeEvent;
  10. import java.beans.PropertyVetoException;
  11.  
  12. public class Voter extends Component {
  13.    private boolean vetoAll = true;
  14.    private String text = "No";
  15.    private transient int baseline;
  16.  
  17.    public Voter() {
  18.       ((Component)this).setFont(new Font("Helvetica", 1, 36));
  19.       ((Component)this).setBackground(Color.black);
  20.       ((Component)this).setForeground(Color.red);
  21.    }
  22.  
  23.    public void setVetoAll(boolean var1) {
  24.       this.vetoAll = var1;
  25.       if (this.vetoAll) {
  26.          this.text = "No";
  27.       } else {
  28.          this.text = "Yes";
  29.       }
  30.  
  31.       ((Component)this).repaint();
  32.    }
  33.  
  34.    public boolean getVetoAll() {
  35.       return this.vetoAll;
  36.    }
  37.  
  38.    public void vetoableChange(PropertyChangeEvent var1) throws PropertyVetoException {
  39.       if (this.vetoAll) {
  40.          throw new PropertyVetoException("NO!", var1);
  41.       }
  42.    }
  43.  
  44.    public Dimension getPreferredSize() {
  45.       FontMetrics var1 = ((Component)this).getFontMetrics(((Component)this).getFont());
  46.       this.baseline = var1.getMaxAscent() + 2;
  47.       int var2 = this.baseline + var1.getMaxDescent() + 2;
  48.       int var3 = var1.stringWidth("Yes") + 8;
  49.       return new Dimension(var3, var2);
  50.    }
  51.  
  52.    public void paint(Graphics var1) {
  53.       var1.setColor(((Component)this).getBackground());
  54.       Dimension var2 = ((Component)this).getSize();
  55.       var1.fillRect(0, 0, var2.width, var2.height);
  56.       var1.setColor(((Component)this).getForeground());
  57.       var1.setFont(((Component)this).getFont());
  58.       var1.drawString(this.text, 4, this.baseline);
  59.    }
  60. }
  61.